tg-me.com/pyHints/522
Last Update:
#تجربه
امروز یک اتفاق جالبی برام افتاد گفتم بگم :
حدودا ۲ سال قبل یک پروژهای رو وارد شدم که برای ۲ تا شریک بود (هر ۲ نیروی فنی) اما دیدها و فیچرهای متفاوت رو نیاز داشتند.
وقتی من وارد شدم از درگیریهاشون گذشته بود؛ توی مصاحبه من هر ۲ نفر بودند ولی وقتی همکاری شروع شد فقط ۱ نفر بود و خیلی چیزا هم عوض شده بود.
پیگیر شدم فهمیدم از هم جداشدند بصورت دوستانه و قراره هرکسی با تکنیک خودش و فیچرهای مدنظر خودش کار رو پیش ببره؛ درآمد و ... همه چیز هم قبل جداشدن با رضایت ۲ نفر تقسیم شده بود.
از روی رفاقیت زیاد شاید؛ هرکدوم تو اولین اقدام یک سهم مثلاْ ۵٪ به شریکی که دیگه توی شرکتش نیست هم داده بود.
کسی که من باهاش شروع به کار کردم؛ آدم خیلی حرفهای نبود از نظر کد اما توی بیزینس کد زدن و کار رو یادگرفته بود؛ شریکش اما آدم آکادمیک و بسیار بسیار با سواد بالا در زمینه فنی بود.
ما کار رو شروع کردیم؛ نیروهایی که گرفتیم نهایتا میدیور بودند؛ دستمزدها پایین اما اجازه میداد بهشون انگیزه (پاداش) بدیم؛ و هزینه اینکار هم نیاز به آموزش دادن و البته شلوغ شدن خودمون موقع code review
بود.
با همین فرمون و همونطور که حدس زدید چیزی به اسم clean code, code optimization, ...
هم نداشتیم.
تقریبا هر ۲ هفته فیچر تحویل میشد؛ یک گروهی با فیچر کار میکرد نهایتا ۱ هفته هم مشکلات برطرف میشد و دپلوی انجام میشد؛ اما تو کل این مسیر تست نویسی موارد اصلی رو داشتیم.
مثلا ما هیچوقت تست نویسی دیتابیس؛ ستونها و ... رو انجام ندادیم اما تست نویسی model, schema, request, response
رو توی بکند داشتیم.
توی ۶ ماه پروژه لانچ شد و توی ماه ۹ام قراردادهای اصلیش شروع شد؛ من هم ۳ ماه بعدش وقتی todo plan, ...
رو نوشته بودیم و میدونستیم تا ۶ ماه آینده تسکهای اصلی چی هست (تستنویسی؛ تمیزکردن و اپتیمایز کردن) برای یک موقعیت شغلی بهتر از تیم خداحافظی کردم و مدیر فنی دیگری وارد شد.
.
امروز متوجه شدم شرکتی که باهاش کار میکردم؛ شرکت رقیب (یعنی دوستش) رو خریده و صاحب همه امتیاز و کدها و فیچر و ... شده.
.
تفاوت تیم من و شرکت رقیب این بود که من و مدیرم جفتمون بیزینس رو دیدیم و میدونیم یک چیزایی مثل clean code, optimization , .... رو میشه حذف کرد ولی توی کارمون اولین باشیم؛ میدونیم با سرمایهگذاری روی نیروی تازهکار میشه به شرکت اجازه خطا کردن داد چون پول بیشتری نگهداشتیم و البته وقتی دستمزد کمتری پرداخت میکنید (چون ما بیشتر نیروهامون تازه کار و میدیور بودند چندتا متخصص هم داشتیم ولی خب خیلی کمتر نسبت به رقیب که برای هر حوزه حداقل ۱ نیروی متخصص آورده بود) پاداش و هدایای انگیزشی میشه به نیروها داد.
.
شرکت رقیب حدودا ۷ ماه بعد از ما نسخه اولیه رو لانچ کرد ۷ ماهی که به ما بازار هدف رو یاد داد؛ نشون داد چقدر فرضیات ما اشتباه بوده و ...
توی این ۷ ماه مشتریهای ما پر توقع شدند؛ وقتی شرکت رقیب با نسخه اولیه اومد و چون این دانش بازار رو نداشت بازاریابیش همیشه به نفع ما تموم میشد؛ مشتری رو متقاعد میکرد که همچین سیستمی رو نیاز داره.
اما مشتری قبل خرید تحقیق میکرد و سیستم مارو میدید؛ فیچرهای بیشتر + قیمت ارزونتر مجاب میشد از ما خرید کنه چون ما نیروهامون ارزونتر بود و هزینه کمتری برای راهاندازی داده بودیم.
fluent python
همینجا هشدار باید بدم اگر رفتید سراغ تکنیک بالا حتما باید تجربه و سابقه اش رو داشته باشید. مدیریت همچین تیم و همچین وضعیت کدی با کوچکترین اشتباه تبدیل به بحران میشه.
این تکنیک مثل یک تیغ تیز هست که شما روی لبهاش دارید راه میرید؛ اگر این کار رو درست انجام بدید برنده خواهید بود.
اضافه کردن تست نویسی و هزینه و زمان صرف کردن روی این مورد اما برای من این لبه تیز تیغ رو تبدیل به طناب یا پل باریک کرد.
پ.ن :
آدم آکادمیک بودن ربطی به دانشگاه رفتن و نرفتن نداره؛ منظور تجربه پیادهسازی سیستم هست. آدمی که دوره زیادی دیده و کتابهای زیادی خونده اما هیچوقت سیستم کامل پیادهسازی نکرده یا حتی بطور جداگانه روی بخشهای مختلف سیستم و فقط با دید فنی کار کرده.
BY Python Hints
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/pyHints/522